Path 1: 452 calls (1.0)

0 (82) 2 (33) 3 (32) 4 (32) 5 (27) 7 (27) 1 (25) 6 (19) 8 (17) 14 (17)

(1, 's') (42) (1, '(') (24) (2, 'P') (15) (1, 'd') (12) (2, 'k') (9) (3, 'e') (9) (4, 'y') (9) (5, ')') (9) (3, 'a') (9) (4, 'r') (9)

1def next_char(i: int) -> tuple[int, str]:
2        i += 1
3        if i == len(format_string):
4            raise IncompleteFormatString
5        return (i, format_string[i])
            

Path 2: 2 calls (0.0)

16 (1) 2 (1)

IncompleteFormatString (2)

1def next_char(i: int) -> tuple[int, str]:
2        i += 1
3        if i == len(format_string):
4            raise IncompleteFormatString
5        return (i, format_string[i])